Ruby повышает определения методов от жестких сигнатур до динамических интерфейсов. Освоив оператор распаковки оператора и логики выражений, мы создаем методы, которые плавно адаптируются к различной плотности данных без необходимости сложных перегрузок.
1. Умные значения по умолчанию и оператор распаковки
Ruby позволяет инициализировать параметры в сигнатуре, обеспечивая функциональность даже при минимальных данных. Оператор распаковки (*) выполняет роль моста: в параметрах он собирает дополнительные аргументы в массив; в вызовах он «разрывает» массив на отдельные позиции.
2. Возвращение значений на основе выражений
Методы Ruby автоматически возвращают значение последнего выполненного выражения. Однако ключевое слово return используется стратегически для преждевременного выхода или возврата нескольких значений в виде массива для параллельного присваивания.
# Ruby упаковывает (num, sq) в массив [32, 1024]